#ifndef SRC_GUI_H
#define SRC_GUI_H

#include "../base/base.h"
#include "../gfx/gfx.h"
#include "../sfx/sfx.h"
#include "../io/io.h"

typedef struct
{
    GFX_String *caption;

} GUI_MenuItem;

typedef struct
{
    float x, y;
    int nb_items;
    int curItem;

    char *title;
    GUI_MenuItem *items;

    GFX_Sprite *cursor;

} GUI_Menu;

typedef enum
{
    MENUKEY_NONE = 0,
    MENUKEY_UP,
    MENUKEY_DOWN,
    MENUKEY_LEFT,
    MENUKEY_RIGHT,
    MENUKEY_ENTER,
    MENUKEY_BACK,
} MenuKey;

GUI_Menu* gui_menu_create(const char *title, const char **captions);
void gui_menu_delete(GUI_Menu *menu);

void gui_menu_draw(GUI_Menu *menu);
void gui_menu_ticks(GUI_Menu *menu, float dT);
MenuKey gui_menu_key(GUI_Menu *menu);
void gui_menu_navigate(GUI_Menu *menu, MenuKey key);

    void gui_menu_main(void);
        void gui_menu_multiplayer(void);
        void gui_menu_level_editor(void);
        void gui_menu_options(void);
            void gui_menu_graphics(void);
            void gui_menu_sound(void);
    void gui_menu_exit(void);

    int gui_menu_pause(int *curItem, int h);

#endif
